package com.ht.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author guoyuxing
 * @date 2025/5/8 14:21
 */
@Configuration
public class ResourceConfig implements WebMvcConfigurer {

    /**
     * Spring 跨域配置
     */
//    @Bean
//    public CorsFilter corsFilter()
//    {
//        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
//        CorsConfiguration config = new CorsConfiguration();
//        config.setAllowCredentials(true);
//        // 设置访问源地址
//        config.addAllowedOrigin("*");
//        // 设置访问源请求头
//        config.addAllowedHeader("*");
//        // 设置访问源请求方法
//        config.addAllowedMethod("*");
//        config.addExposedHeader("Authorization");
//        // 对接口配置跨域设置
//        source.registerCorsConfiguration("/**", config);
//        return new CorsFilter(source);
//    }

    /**
     * SpringBoot解决跨域
     */

    @Override
    public void addCorsMappings(CorsRegistry registry) {

        registry.addMapping("/**")//添加映射路径，"/**"则表示所有路径都进行处理
                .allowedOrigins("*")//表示允许所有的域都可以请求
                .maxAge(86400)//表示在86400秒内不需要再发送预校验请求
                .allowCredentials(true)//是否发送Cookie信息
                .allowedMethods("GET","POST", "PUT", "DELETE")//表示允许跨域请求的方法
                .allowedHeaders("*")//表示允许头部设置
        ;
    }
}
